package com.iot08.api.service;

import com.iot08.api.constant.Constant;
import com.iot08.common.entity.app.Account;
import com.iot08.common.entity.app.Adversters;
import com.iot08.common.entity.app.AdverstersComInfo;
import com.iot08.common.service.base.BaseService;
import com.iot08.common.utils.StringUtil;
import com.iot08.common.utils.response.ResponseEnum;
import com.iot08.common.utils.response.ResponseMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @version 1.0
 * @Description:
 * @author: Rock
 * @time: 2021/1/5 17:40
 */
@Slf4j
@Service
public class AdverstersComInfoService extends BaseService<AdverstersComInfo> {

//    @Resource
//    private AccountService accountService;
//    @Resource
//    private AdverstersService adverstersService;
//
//    /**
//     * 广告配置获取
//     *
//     * @param openid
//     * @param userAgent
//     * @param version
//     * @time: 2021/1/14 14:49
//     * @author: Rock
//     * @version 1.0
//     */
//    public ResponseMap getInfo(String openid, String userAgent, String version) {
//        //请求头数据解析处理
//        if (StringUtil.isNotBlank(userAgent)) {
//            if (userAgent.contains("Android")) {
//                //android User-Agent: swatch/1.6.0(SM-N9500;Android;9)
//                String[] sysInfoList = userAgent.split(";");
//                String[] tempArr = sysInfoList[0].split("\\(");
//                for (String value : sysInfoList) {
//
//                    tempArr = tempArr[0].split("/");
//                    version = tempArr[tempArr.length - 1];
//
//                }
//            }
//        }
//
//        Account account = accountService.findById(openid);
//        if (account == null) {
//            log.error("Account is null. id={}. getInfo", openid);
//            return ResponseMap.fail(ResponseEnum.STATUS2000.getCode(), ResponseEnum.STATUS2000.getMsg());
//        }
//        ResponseMap res = ResponseMap.success();
//        res.put("openid", openid);
//        res.put("accesstoken", accountService.getAccesstoken(account));
//        //默认关闭开屏
//        res.put("isOpen", 0);
//        List<Object> adDataWeightList = new ArrayList<>();
//        List<Map<String, Object>> adList = new ArrayList<>();
//        AdverstersComInfo info = this.findById("main_info");
//        if (info != null && info.getAppOpenAdvertSwitch() != null && info.getAppOpenAdvertSwitch() != 0) {
//            res.put("isOpen", 1);
//            Query query = new Query(Criteria.where("status").is("1")).with(Sort.by(Sort.Order.asc("index")));
//            List<Adversters> adverstersList = adverstersService.find(query);
//            int num = 1;
//            for (Adversters ad : adverstersList) {
//                if (StringUtil.isNotBlank(ad.getStartTime1()) && StringUtil.isNotBlank(ad.getEndTime1())) {
//                    Map<String, Object> temp = new HashMap<>();
//                    temp.put("adverster_id", num);
//                    temp.put("adverster_name", ad.getShortName());
//                    temp.put("ad_start", ad.getStartTime1());
//                    temp.put("ad_finish", ad.getEndTime1());
//                    adList.add(temp);
//                    num++;
//                }
//                if (StringUtil.isNotBlank(ad.getStartTime2()) && StringUtil.isNotBlank(ad.getEndTime2())) {
//                    Map<String, Object> temp = new HashMap<>();
//                    temp.put("adverster_id", num);
//                    temp.put("adverster_name", ad.getShortName());
//                    temp.put("ad_start", ad.getStartTime2());
//                    temp.put("ad_finish", ad.getEndTime2());
//                    adList.add(temp);
//                    num++;
//                }
//                if (StringUtil.isNotBlank(ad.getStartTime3()) && StringUtil.isNotBlank(ad.getEndTime3())) {
//                    Map<String, Object> temp = new HashMap<>();
//                    temp.put("adverster_id", num);
//                    temp.put("adverster_name", ad.getShortName());
//                    temp.put("ad_start", ad.getStartTime3());
//                    temp.put("ad_finish", ad.getEndTime3());
//                    adList.add(temp);
//                    num++;
//                }
//                if (StringUtil.isNumeric(ad.getADweight())) {
//                    double w = Double.parseDouble(ad.getADweight()) * 100;
//                    while (w > 0) {
//                        w--;
//                        adDataWeightList.add(ad.getShortName());
//                    }
//                }
//            }
//        }
//        res.put("adList", adList);
//        res.put("adDataWeightList", adDataWeightList);
//
//        if (info == null) {
//            //默认配置
//            Map<String, Object> adFillDic = new HashMap<>();
//            Map<String, Object> temp = new HashMap<>();
//            temp.put("adverster_name", "YQ");
//            adFillDic.put("first", temp);
//            temp = new HashMap<>();
//            temp.put("adverster_name", "BIRD");
//            adFillDic.put("second", temp);
//
//            res.put("adFillDic", adFillDic);
//            res.put("adFailUserADName", "YQ");
//            //广告的启用方式 (用上面的方式名 adList(时间), adListWeight(权重), adFillDic(补量))
//            res.put("adStartFun", "adListWeight");
//            //审核免除广告的 账号openid
//            res.put("appAuditAccount", Constant.APP_AUDIT_ACCOUNT);
//            //内部广告开关
//            res.put("appInternalADswitch", true);
//        } else {
//            res.put("appAuditAccount", info.getAppAuditAccount());
//            res.put("adStartFun", info.getAdStartFun());
//            res.put("adFailUserADName", info.getAdFailUserADName());
//            res.put("adFillDic", info.getAdFillDic());
//            if (StringUtil.isNotBlank(info.getApiWordLink())) {
//                res.put("adPasswordURL", info.getApiWordLink().replace(" ", ""));
//            }
//            if ("1".equals(info.getAppInternalADswitch())) {
//                res.put("appInternalADswitch", true);
//            } else {
//                res.put("appInternalADswitch", false);
//            }
//        }
//        if (info != null && StringUtil.isNotBlank(info.getInternalADFreeVersion()) && StringUtil.isNotBlank(version)) {
//            String fversion = info.getInternalADFreeVersion().replace(".", "");
//            version = version.replace(".", "");
//            if (fversion.length() > version.length()) {
//                for (int i = 0; i < fversion.length() - version.length(); i++) {
//                    version += "0";
//                }
//            } else if (fversion.length() < version.length()) {
//                for (int i = 0; i < version.length() - fversion.length(); i++) {
//                    fversion += "0";
//                }
//            }
//            if (version.equals(fversion)) {
//                res.put("appInternalADswitch", false);
//            }
//        }
//        return res;
//    }


}
